// This is a karma config file. For more details see
//   http://karma-runner.github.io/0.13/config/configuration-file.html
// we are also using it with karma-webpack
//   https://github.com/webpack/karma-webpack

var webpackConfig = require('../../build/webpack.test.conf');
var puppeteer = require('puppeteer');
process.env.CHROMIUM_BIN = puppeteer.executablePath();

module.exports = function karmaConfig(config) {
  config.set({
    // to run in additional browsers:
    // 1. install corresponding karma launcher
    //    http://karma-runner.github.io/0.13/config/browsers.html
    // 2. add it to the `browsers` array below.
    customLaunchers: {
      ChromiumHeadlessNoSandbox: {
        base: 'ChromiumHeadless',
        flags: ['--no-sandbox']
      }
    },
    browsers: [
      'ChromiumHeadlessNoSandbox'
    ],
    // browsers: ['PhantomJS'],
    // frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],
    plugins: [
      'karma-chrome-launcher',
      // 'karma-chai',
      'karma-mocha',
      'karma-sinon-chai',
      'karma-spec-reporter',
      'karma-coverage',
      // 'karma-coverage-istanbul-reporter',
      'karma-sourcemap-loader',
      // 'karma-sinon',
      'karma-webpack'
    ],
    frameworks: ['mocha', 'sinon-chai'],
    reporters: ['spec', 'coverage'],
    files: [
      '../../node_modules/babel-polyfill/dist/polyfill.js',
      './index.js',
    ],
    preprocessors: {
      './index.js': ['webpack', 'sourcemap'],
    },
    webpack: webpackConfig,
    webpackMiddleware: {
      noInfo: true,
    },
    singleRun: true,
    coverageReporter: {
      dir: './coverage',
      reporters: [
        {type: 'lcov', subdir: '.'},
        {type: 'text-summary'},
      ],
    },
    client: {
      mocha: {
        timeout: 8000,
      },
    },
  });
};
